//
//  main.m
//  NSDate预习
//
//  Created by dllo on 16/7/11.
//  Copyright © 2016年 dllo. All rights reserved.
//

#import <Foundation/Foundation.h>
#import "Time.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        /**NSDate
         
         计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前"
         将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象。
         将1468232420转成日期类型
         研究NSDateComponents
         预习内存管理, 整理今天的代码*/
#if 0
        // 返回当前时间
        NSDate *nowDate = [NSDate date];
        NSLog(@"现在时间\n%@",nowDate);
        // 返回当前时间0秒后的时间
        NSDate *sinceNowDate = [NSDate dateWithTimeIntervalSinceNow:0];
        NSLog(@"返回当前时间0秒后的时间\n%@",sinceNowDate);
        // 返回1970-1-1 00:00:00 时间0秒后的时间
        NSDate *since1970date = [NSDate dateWithTimeIntervalSince1970:0];
        NSLog(@"返回1970-1-1 00:00:00 时间0秒后的时间\n%@",since1970date);
        // 随机返回比较遥远的未来时间
        NSDate *randomFuturalDate = [NSDate distantFuture];
        NSLog(@"随机返回比较遥远的未来时间\n%@",randomFuturalDate);
        // 随机返回一个比较遥远的过去时间
        NSDate *randomEarlyDate = [NSDate distantPast];
        NSLog(@"随机返回一个比较遥远的过去时间\n%@",randomEarlyDate);
        // 返回1970-1-1开始走过的毫秒数
        NSTimeInterval interval = [nowDate timeIntervalSince1970];
        long long int date1 = (long long int)interval;
        NSLog(@"距离当前走过的毫秒数\n%lld",date1);
        // 给出时间秒数,取出对应时间
        NSString *s = @"655615155164545";
        NSDate *date2 = [NSDate dateWithTimeIntervalSince1970:[s doubleValue] / 1000];
        NSLog(@"转化的固定时间:%@",date2);
        NSDate *earlyDate = [nowDate earlierDate:date2];
        NSLog(@"更早的时间是%@",earlyDate);
        // 获取两个时间的时间差
        NSTimeInterval interval1 = [nowDate timeIntervalSinceDate:date2];
        NSLog(@"两个时间间隔的差\n%f",interval1);
#endif
        // 作业:计算当前时间和一个固定时间的差值,如果差值在60秒内,输出"刚刚",如果在60秒外3600秒内,输出"xx分钟前",如果3600秒外, 3600*24秒内,输出"xx小时前
        NSDate *fixDate = [NSDate dateWithTimeIntervalSinceNow:61];
        NSString *timeAgo = [Time compareCurrentTime:fixDate];
        NSLog(@"%@",timeAgo);
        // 将字符串@"2016年04月01日 01点20分18秒"转换为NSDate对象。
        NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
        [dateFormat setDateFormat:@"yyyy年MM月dd日 HH点mm分ss秒"];
        NSString *timeStr = @"2016年04月01日 01点20分18秒";
        NSDate *dateStr = [[dateFormat dateFromString:timeStr] dateByAddingTimeInterval:[NSTimeZone localTimeZone].secondsFromGMT];
//        NSDate *dateStr = [dateFormat dateFromString:timeStr];
        NSLog(@"%@",dateStr);
        // 将1468232420转成日期类型
        NSString *timeStr1 = @"1468232420";
        NSDate *date1 = [NSDate dateWithTimeIntervalSince1970:[timeStr1 doubleValue] / 1000];
        NSLog(@"%@",date1);
        // 研究NSDateComponents
        
        // 获得2004年5月6日是星期几
        NSDateComponents *comps = [[NSDateComponents alloc] init];
        [comps setDay:6];
        [comps setMonth:5];
        [comps setYear:2004];
        NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
        NSDate *date2 = [gregorian dateFromComponents:comps];
        NSDateComponents *weekdayComponents = [gregorian components:NSWeekCalendarUnit fromDate:date2];
        int weekday = [weekdayComponents weekday];
        NSLog(@"是星期%d",weekday);
    }
    return 0;
}
